home *** CD-ROM | disk | FTP | other *** search
/ Aminet 32 / Aminet 32 (1999)(Schatztruhe)[!][Aug 1999].iso / Aminet / util / libs / graphics3d.lha / doc / graphics3D.h < prev    next >
Encoding:
C/C++ Source or Header  |  1999-01-22  |  21.3 KB  |  511 lines

  1. @DATABASE "graphics3D.h"
  2. @MASTER   "Ram Disk:graphics3D.h"
  3. @REMARK   This file was created by ADtoHT 2.1 on 21-Gen-99 23:47:50
  4. @REMARK   Do not edit
  5. @REMARK   ADtoHT is © 1993-1995 Christian Stieber
  6.  
  7. @NODE MAIN "graphics3D.h"
  8.  
  9. @{"graphics3D.h" LINK File}
  10.  
  11.  
  12. @{b}Structures@{ub}
  13.  
  14. @{"ambient3d" LINK "graphics3D.h/File" 334}  @{"buftmap" LINK "graphics3D.h/File" 230}    @{"dir3d" LINK "graphics3D.h/File" 203}
  15. @{"edge" LINK "graphics3D.h/File" 221}       @{"grafica" LINK "graphics3D.h/File" 409}    @{"line" LINK "graphics3D.h/File" 196}
  16. @{"matrix1x4" LINK "graphics3D.h/File" 158}  @{"matrix4x4" LINK "graphics3D.h/File" 136}  @{"objectnode" LINK "graphics3D.h/File" 271}
  17. @{"pixel" LINK "graphics3D.h/File" 188}      @{"pixl" LINK "graphics3D.h/File" 211}       @{"poltmap" LINK "graphics3D.h/File" 239}
  18. @{"polygon" LINK "graphics3D.h/File" 253}    @{"polytemp" LINK "graphics3D.h/File" 298}   @{"rgbtype" LINK "graphics3D.h/File" 96}
  19. @{"tag3d" LINK "graphics3D.h/File" 105}      @{"vector" LINK "graphics3D.h/File" 168}     @{"vert1" LINK "graphics3D.h/File" 177}
  20. @{"vertex" LINK "graphics3D.h/File" 75}     @{"vtmap" LINK "graphics3D.h/File" 83}      
  21.  
  22.  
  23. @{b}Typedefs@{ub}
  24.  
  25. @{"Sambient3d" LINK "graphics3D.h/File" 403}  @{"SAreaInfo" LINK "graphics3D.h/File" 392}    @{"Sbuftmap" LINK "graphics3D.h/File" 405}
  26. @{"Sdir3d" LINK "graphics3D.h/File" 401}      @{"Sedge" LINK "graphics3D.h/File" 404}        @{"Sgrafica" LINK "graphics3D.h/File" 391}
  27. @{"Smatrix4x4" LINK "graphics3D.h/File" 402}  @{"Sobjectnode" LINK "graphics3D.h/File" 395}  @{"Spolygon" LINK "graphics3D.h/File" 398}
  28. @{"Spolytemp" LINK "graphics3D.h/File" 400}   @{"SRastPort" LINK "graphics3D.h/File" 394}    @{"STmpRas" LINK "graphics3D.h/File" 393}
  29. @{"Svector" LINK "graphics3D.h/File" 399}     @{"Svert1" LINK "graphics3D.h/File" 397}       @{"Svertex" LINK "graphics3D.h/File" 396}
  30.  
  31.  
  32. @{b}#defines@{ub}
  33.  
  34. @{"ATMP" LINK "graphics3D.h/File" 132}       @{"COMPLEMENT" LINK "graphics3D.h/File" 15}  @{"CS_GCOLOR" LINK "graphics3D.h/File" 35}
  35. @{"CS_NPX0" LINK "graphics3D.h/File" 37}    @{"CS_NPY0" LINK "graphics3D.h/File" 38}     @{"CS_PROJET" LINK "graphics3D.h/File" 33}
  36. @{"CS_SBUFF" LINK "graphics3D.h/File" 34}   @{"CS_VDIST" LINK "graphics3D.h/File" 36}    @{"CS_VIEWP" LINK "graphics3D.h/File" 41}
  37. @{"CS_ZBUF" LINK "graphics3D.h/File" 40}    @{"CS_ZOOM" LINK "graphics3D.h/File" 39}     @{"END_T" LINK "graphics3D.h/File" 26}
  38. @{"FIXV" LINK "graphics3D.h/File" 116}       @{"FIXVM" LINK "graphics3D.h/File" 117}       @{"FLAT" LINK "graphics3D.h/File" 21}
  39. @{"FRUSTUM" LINK "graphics3D.h/File" 25}    @{"GORAUD" LINK "graphics3D.h/File" 22}      @{"GP_COL" LINK "graphics3D.h/File" 49}
  40. @{"GP_HRGB" LINK "graphics3D.h/File" 50}    @{"GP_INFO" LINK "graphics3D.h/File" 53}     @{"GP_LRGB" LINK "graphics3D.h/File" 51}
  41. @{"GP_NCOL" LINK "graphics3D.h/File" 47}    @{"GP_NLIV" LINK "graphics3D.h/File" 48}     @{"GP_PALET" LINK "graphics3D.h/File" 52}
  42. @{"GP_RCOL" LINK "graphics3D.h/File" 46}    @{"GP_TRASP" LINK "graphics3D.h/File" 54}    @{"INVERSVID" LINK "graphics3D.h/File" 16}
  43. @{"JAM1" LINK "graphics3D.h/File" 13}       @{"JAM2" LINK "graphics3D.h/File" 14}        @{"LEN_TABC" LINK "graphics3D.h/File" 126}
  44. @{"LTMP" LINK "graphics3D.h/File" 131}       @{"MAXDX" LINK "graphics3D.h/File" 123}       @{"MAXDY" LINK "graphics3D.h/File" 124}
  45. @{"MAXOBJECT" LINK "graphics3D.h/File" 121}  @{"MAXPOINT" LINK "graphics3D.h/File" 120}    @{"MAXVER()" LINK "graphics3D.h/File" 386}
  46. @{"MAXVERT" LINK "graphics3D.h/File" 122}    @{"MFRAC" LINK "graphics3D.h/File" 118}       @{"MINT" LINK "graphics3D.h/File" 119}
  47. @{"MO_STATE" LINK "graphics3D.h/File" 59}   @{"MO_VMODE" LINK "graphics3D.h/File" 60}    @{"MP_2SIDE" LINK "graphics3D.h/File" 67}
  48. @{"MP_ACTIV" LINK "graphics3D.h/File" 71}   @{"MP_COLOR" LINK "graphics3D.h/File" 66}    @{"MP_POLY" LINK "graphics3D.h/File" 65}
  49. @{"MP_TMAP" LINK "graphics3D.h/File" 68}    @{"MP_VTAUTO" LINK "graphics3D.h/File" 70}   @{"MP_VTMAP" LINK "graphics3D.h/File" 69}
  50. @{"PARAL_P" LINK "graphics3D.h/File" 18}    @{"PROSP_P" LINK "graphics3D.h/File" 17}     @{"SFIXV" LINK "graphics3D.h/File" 115}
  51. @{"SMARG" LINK "graphics3D.h/File" 129}      @{"SMARGM" LINK "graphics3D.h/File" 130}      @{"SOLID" LINK "graphics3D.h/File" 20}
  52. @{"TMAP" LINK "graphics3D.h/File" 23}       @{"TRASP" LINK "graphics3D.h/File" 27}       @{"TTMAP" LINK "graphics3D.h/File" 125}
  53. @{"WIREF" LINK "graphics3D.h/File" 19}      @{"ZPLANE" LINK "graphics3D.h/File" 24}      
  54.  
  55. @ENDNODE
  56. @NODE File "graphics3D.h"
  57. /*
  58. **      $VER: graphics3d.h 10.02 (02.03.98)
  59. **
  60. **      main include file for graphics3d.library
  61. **
  62. **      (C) Copyright 1997 Patrizio Biancalani
  63. **      All Rights Reserved.
  64. */
  65.  
  66. #ifndef GRAPHICS3D_GRAPHICS3D_H
  67. #define GRAPHICS3D_GRAPHICS3D_H
  68.  
  69. #define JAM1 0
  70. #define JAM2 1
  71. #define COMPLEMENT 2
  72. #define INVERSVID 4
  73. #define PROSP_P 0       /* tipo proiezione prospettica */
  74. #define PARAL_P 1       /* tipo proiezione parallela */
  75. #define WIREF   0       /* modo visualizzazione in wire frame */
  76. #define SOLID   2       /* modo visualizzazione in solid */
  77. #define FLAT    1       /* modo visualizzazione in flat shading */
  78. #define GORAUD  3       /* modo visualizzazione in goraud shading */
  79. #define TMAP    0x10    /* modo visualizzazione in texture mapping */
  80. #define ZPLANE  0       /* #1 modo clippaggio oggetti */
  81. #define FRUSTUM 1       /* #2 modo clippaggio oggetti */
  82. #define END_T  0        /* fine array tag3d di dati */
  83. #define TRASP  1000     /* valore registro colore che indica trasparente */
  84.  
  85. /*
  86.   tipi dati per tag3d.tipo riconosciuti attualmente per
  87.   funzione GD_cascene()
  88. */
  89. #define CS_PROJET 1     /* tipo di proiezione */
  90. #define CS_SBUFF  2     /* attivazione o meno single buffering */
  91. #define CS_GCOLOR 3     /* nuovo colore sfondo box di visualizzazione */
  92. #define CS_VDIST  4     /* nuovo valore distanza da piano di proiezione */
  93. #define CS_NPX0   5     /* nuova posizione X per box di visualizzazione */
  94. #define CS_NPY0   6     /* nuova posizione Y per box di visualizzazione */
  95. #define CS_ZOOM   7     /* nuovo valore per zoom scena */
  96. #define CS_ZBUF   8     /* attivazione o meno z-buffering */
  97. #define CS_VIEWP  9     /* ritorna posizione attuale camera */
  98. /*
  99.   tipi dati per tag3d.tipo riconosciuti attualmente per
  100.   funzione GD_genpalette()
  101. */
  102. #define GP_RCOL   1     /* set n# colori da riservare per altri usi */
  103. #define GP_NCOL   2     /* set n# colori base da usare */
  104. #define GP_NLIV   3     /* set n# livelli d'intensita' per ogni colore */
  105. #define GP_COL    4     /* set n# colore a cui associare i prossimi GP_HRBG e @{"GP_LRGB" LINK File 51} */
  106. #define GP_HRGB   5     /* definisce i valori RGB massimi per un colore (def.15,15,15) */
  107. #define GP_LRGB   6     /* definisce i valori RGB minimi per un colore (def. 0,0,0) */
  108. #define GP_PALET  7     /* assegna uno specifico registro della palette al colore @{"GP_COL" LINK File 49} */
  109. #define GP_INFO   8     /* restituisce il n# registro della palette del colore @{"GP_COL" LINK File 49} */
  110. #define GP_TRASP  9     /* assegno colore trasparente ad ultimo e lo ignoro per i livelli */
  111. /*
  112.   tipi dati per tag3d.tipo riconosciuti attualmente per
  113.   funzione GD_modobj()
  114. */
  115. #define MO_STATE  1     /* attiva(1) o disattiva(0) l'oggetto attuale */
  116. #define MO_VMODE  2     /* setta il nuovo viewmode dell'oggetto attuale */
  117. /*
  118.   tipi dati per tag3d.tipo riconosciuti attualmente per
  119.   funzione GD_modpoly()
  120. */
  121. #define MP_POLY   1     /* set n# poligono su cui far operare le modifiche */
  122. #define MP_COLOR  2     /* modifica il colore del poligono */
  123. #define MP_2SIDE  3     /* setta a 2(1) o 1(0) faccia il poligono */
  124. #define MP_TMAP   4     /* assegna una texture map al poligono */
  125. #define MP_VTMAP  5     /* definisce i vertici della texture map del poligono */
  126. #define MP_VTAUTO 6     /* definisce i vertici automaticamente */
  127. #define MP_ACTIV  7     /* attiva(1) o disattiva(0) il poligono selezionato */
  128.  
  129. /** STRUTTURE DATI DI USO ESTERNO ED INTERNO **/
  130. /* vertice, usa formato float a virgola fissa ,(val*@{"FIXV" LINK File 116}) */
  131. struct vertex
  132. {
  133. long int x;
  134. long int y;
  135. long int z;
  136. };
  137.  
  138. /* vertice su texture map (valori in pixel intero corto)*/
  139. struct vtmap
  140. {
  141. short int x1;
  142. short int y1;
  143. short int x2;
  144. short int y2;
  145. short int x3;
  146. short int y3;
  147. short int x4;
  148. short int y4;
  149. };
  150.  
  151. /* struttura per definizione colore */
  152. struct rgbtype
  153. {
  154. short int r;
  155. short int g;
  156. short int b;
  157. };
  158.  
  159. /* struttura tag3d per definire un array di valori estendibile */
  160. /* analogo alla struttura TagItem dell' Amiga O.S.             */
  161. struct tag3d
  162. {
  163. short unsigned int tipo;        /* flag che identifica valore
  164.                                                 (se=0 fine array) */
  165. long int val;                   /* valore effettivo */
  166. };
  167.  
  168. /* !!! STRUTTURE E DEFINIZIONI GLOBALI DI USO ESCLUSIVAMENTE INTERNO !!! */
  169.  
  170. /** COSTANTI DI USO SOLO INTERNO **/
  171. #define SFIXV   8       /* n# di shift per cal. num. virgola fissa */
  172. #define FIXV    256     /* fattore moltipl. per num. virgola fissa */
  173. #define FIXVM   128     /* meta' di @{"FIXV" LINK File 116} , per effettuare appros.  */
  174. #define MFRAC   @{"FIXV" LINK File 116}    /* maschera per estrarre parte frazionaria */
  175. #define MINT 0xFFFFFFFF /* maschera per estrarre parte intera */
  176. #define MAXPOINT  4     /* massimo numero di punti per poligono */
  177. #define MAXOBJECT 200   /* massimo numero oggetti per mondo 3D (max. 65535)*/
  178. #define MAXVERT   6300  /* massimo numero vertici in un poligono */
  179. #define MAXDX     3000  /* massima larghezza box di visualizzazione */
  180. #define MAXDY     3000  /* massima altezza box di visualizzazione */
  181. #define TTMAP     200   /* n# massimo di texture map definibili per una scena */
  182. #define LEN_TABC 300*4  /* dimensioni tabella colori */
  183.  
  184. /************ macro solo locali *******/
  185. #define SMARG  16
  186. #define SMARGM 8
  187. #define LTMP 1000
  188. #define ATMP 1000
  189.  
  190. /* matrice di trasformazione (4x4) */
  191. /* usa formato float a virgola fissa ,(val*@{"FIXV" LINK File 116}) */
  192. struct matrix4x4
  193. {
  194. long int r0c0;
  195. long int r0c1;
  196. long int r0c2;
  197. long int r0c3;
  198. long int r1c0;
  199. long int r1c1;
  200. long int r1c2;
  201. long int r1c3;
  202. long int r2c0;
  203. long int r2c1;
  204. long int r2c2;
  205. long int r2c3;
  206. long int r3c0;
  207. long int r3c1;
  208. long int r3c2;
  209. long int r3c3;
  210. };
  211.  
  212. /* matrice di trasformazione (1x4) */
  213. /* usa formato float a virgola fissa ,(val*@{"FIXV" LINK File 116}) */
  214. struct matrix1x4
  215. {
  216. long int r0c0;
  217. long int r0c1;
  218. long int r0c2;
  219. long int r0c3;
  220. };
  221.  
  222. /* vettore */
  223. /* usa formato float a virgola fissa ,(val*@{"FIXV" LINK File 116}) */
  224. struct vector
  225. {
  226. long int x;
  227. long int y;
  228. long int z;
  229. long int w;
  230. };
  231.  
  232. /* vertice + colore, usa formato float a virgola fissa ,(val*@{"FIXV" LINK File 116}) */
  233. struct vert1
  234. {
  235. long int x;
  236. long int y;
  237. long int z;
  238. short int color;        /* colore vertice in flat shading */
  239. short int npol;         /* n# di volte vertice usato */
  240. };
  241.  
  242. /* pixel */
  243. /* usa formato intero a 2 bytes */
  244. struct pixel
  245. {
  246. short int x;
  247. short int y;
  248. };
  249.  
  250. /* struttura per definire una linea */
  251. /* usa due riferimenti a strutture vertice */
  252. struct line
  253. {
  254. @{"struct vertex" LINK File 75} *a;               /* puntatore a st. vertex di partenza */
  255. @{"struct vertex" LINK File 75} *b;               /* puntatore a st. vertex d'arrivo */
  256. };
  257.  
  258. /* struttura per definire direzione in spazio 3d */
  259. struct dir3d
  260. {
  261. long int angx;
  262. long int angy;
  263. long int angz;
  264. };
  265.  
  266. /* struttura pixel usata nella versione _CPU per disegnare i poligoni */
  267. struct pixl {
  268.         long int x;
  269.         long int y;
  270.         long int z;
  271.         long int u;     /* (x) */
  272.         long int v;     /* (y) */
  273.         long int color;
  274.         };
  275.  
  276. /* elementi tabelle scan line nel goraud shading */
  277. struct edge {
  278.         short int x;
  279.         short int color;
  280.         long int z;
  281.         long int u;     /* (x) */
  282.         long int v;     /* (y) */
  283.         };
  284.  
  285. /* struttura per definire un'area per buffer di una texture map */
  286. struct buftmap
  287. {
  288. unsigned char *chunky;  /* area di memoria per buffer chunky se=0 allora vuota */
  289. long int lung;          /* lunghezza buffer di memoria */
  290. short int larg;         /* larghezza texture map (in pixel) */
  291. short int alt;          /* altezza texture map (in pixel) */
  292. };
  293.  
  294. /* struttura per definizione texture in un poligono */
  295. struct poltmap
  296. {
  297. short int u1;           /* coord u #1 vertice su texture (in pixel) */
  298. short int v1;           /* coord v #1 vertice su texture (in pixel) */
  299. short int u2;           /* coord u #2 vertice su texture (in pixel) */
  300. short int v2;           /* coord v #2 vertice su texture (in pixel) */
  301. short int u3;           /* coord u #3 vertice su texture (in pixel) */
  302. short int v3;           /* coord v #3 vertice su texture (in pixel) */
  303. short int u4;           /* coord u #4 vertice su texture (in pixel) */
  304. short int v4;           /* coord v #4 vertice su texture (in pixel) */
  305. @{"struct buftmap" LINK File 230} *dtmap;  /* puntatore a struttura con dati texture */
  306. };
  307.  
  308. /* struttura per definizione di un poligono */
  309. struct polygon
  310. {
  311. char numpoints;
  312. short int color;
  313. short int shade;
  314. char twosided;
  315. char visible;
  316. char clipped;
  317. char active;
  318. @{"struct poltmap" LINK File 239} ptmap;   /* struttura descritrice texture poligono */
  319. long int vertexlist0;   /* puntatore a #1 indice vertici */
  320. long int vertexlist1;   /* puntatore a #2 indice vertici */
  321. long int vertexlist2;   /* puntatore a #3 indice vertici */
  322. long int vertexlist3;   /* puntatore a #4 indice vertici */
  323. char dummy;             /* per far si che la lunghezza sia pari */
  324. };
  325.  
  326. /* struttura di descrizione di un oggetto */
  327. struct objectnode
  328. {
  329. long int id;            /* identificativo univoco per oggetto */
  330. long int dummy;         /* pad per poter usare name con StringF */
  331. char name[22];
  332. long int numverts;
  333. @{"struct vertex" LINK File 75} *vorig;   /* puntatore a elenco vertici loc. orig. */
  334. @{"struct vertex" LINK File 75} *vlocal;  /* puntatore a elenco vertici locali */
  335. @{"struct vert1" LINK File 177}  *vcamera; /* puntatore a elenco vertici camera */
  336. long int numpolys;
  337. @{"struct polygon" LINK File 253} *polys;  /* puntatore a elenco poligoni */
  338. char shade;             /* metodo di visualiz. (WIRE,@{"SOLID" LINK File 20},@{"FLAT" LINK File 21},@{"GORAUD" LINK File 22}) */
  339. char state;             /* segnala se oggetto da visualizzare */
  340. char clipped;           /* segnala se oggetto clippato interamente*/
  341. char trasf;             /* flag per segnalare eventuale trasf. avv.*/
  342. long int worldposx;     /* coord. x punto d'inserzione oggetto */
  343. long int worldposy;     /* coord. y  "        "          "     */
  344. long int worldposz;     /* coord. z  "        "          "     */
  345. long int xmax;          /* vertici bounding box oggetto */
  346. long int ymax;          /*              "               */
  347. long int zmax;          /*              "               */
  348. long int xmin;          /*              "               */
  349. long int ymin;          /*              "               */
  350. long int zmin;          /*              "               */
  351. };
  352.  
  353. /* struttura per definizione di un poligono proiettato da visualizzare */
  354. struct polytemp
  355. {
  356. short int       x1;
  357. short int       y1;
  358. short int       x2;
  359. short int       y2;
  360. short int       x3;
  361. short int       y3;
  362. short int       x4;
  363. short int       y4;
  364. short int       x5;
  365. short int       y5;
  366. short int numpoints;
  367. @{"struct poltmap" LINK File 239} *tmap;   /* puntatore a struttura descritrice texture map poligono */
  368. short int     color;
  369. short int     shade;
  370. short int       obj;
  371. long  int      npol;
  372. long  int    svalue;
  373. char          vmode;
  374. char          clp1;
  375. char          clp2;
  376. char          clp3;
  377. char          clp4;
  378. long   int      z1;
  379. long   int      z2;
  380. long   int      z3;
  381. long   int      z4;
  382. char         dummy;
  383. };
  384.  
  385. /**
  386.         struttura di descrizione generale ambiente, il puntatore ad essa
  387.         va dato come primo parametro al richiamo di ogni funzione
  388.         dall'esterno
  389. **/
  390. struct ambient3d
  391. {
  392. @{"struct grafica" LINK File 409} *graf;           /* valore ritornato da PE_ini_g */
  393. struct Window *win;             /* punt. a finestra usata */
  394. long int half_screen_width;
  395. long int half_screen_height;
  396. long int viewing_distance;
  397. short int gl_triangle_color;
  398. short int minx;
  399. short int miny;
  400. short int maxx;
  401. short int maxy;
  402. short int maxintensity;
  403. long int near_z;
  404. long int far_z;
  405. long int zoom;                  /* num. reale a virgola fissa (val*@{"FIXV" LINK File 116}) */
  406. long int aspect_ratio;          /* num. reale a virgola fissa (val*@{"FIXV" LINK File 116}) */
  407. long int ambient_light;         /* num. reale a virgola fissa (val*@{"FIXV" LINK File 116}) */
  408. long int inv_aspect_ratio;      /* num. reale a virgola fissa (val*@{"FIXV" LINK File 116}) */
  409. long int bord_col;              /* colore bordo poligoni (se <0 no bordo)*/
  410. long int gcolor;                /* colore sfondo scena */
  411. char projection_type;           /* tipo di proiezione (0=pros. 1=paral.) */
  412. char view_mode;                 /* modo vis. (1=flat 0=wire 2=solid 3=goraud) */
  413. char fzbuf;                     /* flag attivazione zbuffer (1=si 0=no) */
  414. char clip_mode;
  415. char agg_all;                   /* flag per forzare aggiornamento scena */
  416. long int dummy;
  417. @{"struct vector" LINK File 168} light_source;     /* puntatore a struttura vector */
  418. long int dummy1;
  419. @{"struct vector" LINK File 168} view_point;       /* puntatore a struttura vector */
  420. @{"struct dir3d" LINK File 203} view_angle;        /* puntatore a struttura dir3d */
  421. @{"struct matrix4x4" LINK File 136} global_view;   /* puntatore a struttura matrix4x4 */
  422. char *temp;                     /* puntatore ad area per uso temporaneo */
  423. long int ltemp;                 /* lunghezza area temp */
  424. long int *iobjects;             /* punt. ad array con indici su objects */
  425. @{"struct objectnode" LINK File 271} *objects;     /* punt. ad array di strutture objectnode */
  426. long int *iwpolys;              /* punt. ad array puntatori su worldpolys */
  427. @{"struct polytemp" LINK File 298} *worldpolys;    /* punt. ad array di strutture polytemp */
  428. long int *sintable;             /* punt. ad array di reali a virg. fissa */
  429. long int *costable;             /* punt. ad array di reali a virg. fissa */
  430. long int total_polys;           /* n# totale poligoni da tracciare */
  431. short int total_objects;        /* n# totale oggetti presenti */
  432. long int max_polys;             /* n# massimo poligoni presenti */
  433. long int old_mpoly;             /* vecchio valore per n# massimo poligoni presenti */
  434. long int attuale;               /* oggetto attualmente selezionato */
  435. long int numero;                /* numero inc. alla creazione di un oggetto*/
  436. long int iterazioni;            /* n# iterazioni per sorting */
  437. char dummyy;
  438. };
  439.  
  440. /* !!! STRUTTURE E DEFINIZIONI GLOBALI DI USO ESCLUSIVAMENTE INTERNO !!! */
  441.  
  442. #define MAXVER(vert) (vert*5+30)
  443.  
  444. /**** dichiarazioni per poter usare sizeof con queste strutture  ****/
  445. /**** probabilmente utile solo se si usa VBCC v0.5 ****/
  446.  
  447. typedef @{"struct grafica" LINK File 409} Sgrafica;
  448. typedef struct AreaInfo SAreaInfo;
  449. typedef struct TmpRas STmpRas;
  450. typedef struct RastPort SRastPort;
  451. typedef @{"struct objectnode" LINK File 271} Sobjectnode;
  452. typedef @{"struct vertex" LINK File 75} Svertex;
  453. typedef @{"struct vert1" LINK File 177} Svert1;
  454. typedef @{"struct polygon" LINK File 253} Spolygon;
  455. typedef @{"struct vector" LINK File 168} Svector;
  456. typedef @{"struct polytemp" LINK File 298} Spolytemp;
  457. typedef @{"struct dir3d" LINK File 203} Sdir3d;
  458. typedef @{"struct matrix4x4" LINK File 136} Smatrix4x4;
  459. typedef @{"struct ambient3d" LINK File 334} Sambient3d;
  460. typedef @{"struct edge" LINK File 221} Sedge;
  461. typedef @{"struct buftmap" LINK File 230} Sbuftmap;
  462.  
  463. /********************************************************************/
  464.  
  465. struct grafica
  466. {
  467.  struct AreaInfo *o_ai; /* valore originale puntatore ad areainfo */
  468.  struct TmpRas *o_tr;   /* valore originale puntatore ad tmprast */
  469.  struct AreaInfo n_ai;  /* nuova areainfo */
  470.  struct TmpRas n_tr;    /* nuova tmpras */
  471.  long int *t_color;     /* puntatore a tabella colori virtuali base */
  472.  @{"struct buftmap" LINK File 230} *a_tmap;/* puntatore ad array di strutture per definizione texture map */
  473.  char *pras;            /* puntatore a area di memoria grafica */
  474.  char *b_af;            /* puntatore a buffer vettori per areafill */
  475.  short int r_color;     /* n# colori da non usare nella gen. palette */
  476.  short int n_level;     /* n# livelli intensita' per ogni colore */
  477.  short int n_color;     /* n# colori base nella palette */
  478.  long int depth;        /* n# colori disponibili nella palette dello schermo usato */
  479.  long int lb_af;        /* dimensioni area precedente */
  480.  struct ViewPort *vpor; /* puntatore a viewport dello schermo della fin.*/
  481.  struct RastPort *rast; /* puntatore a rastport usato dalle routin */
  482.  struct Window *wind;   /* puntatore a finestra su cui agire */
  483.  long int larg;         /* larghezza box in cui lavorera' areafill */
  484.  long int alte;         /* altezza box in cui lavorera' areafill */
  485.  short int clipx;       /* origine x clip box */
  486.  short int clipy;       /* origine y clip box */
  487.  short int clipdx;      /* larghezza clip box */
  488.  short int clipdy;      /* altezza clip box */
  489.  long int *zbuf;        /* puntatore ad area per z-buffering */
  490.  long int lzbuf;        /* lunghezza area precedente */
  491. /** estensioni per double buffering **/
  492.  char   fdouble;        /* flag per attivare double buffer (0=off 1=on)*/
  493. /** campi usati da libreria ottimizzata **/
  494.  char *dbuf;            /* puntatore ad display buffer chunky*/
  495.  long int ldbuf;        /* lunghezza in bytes di area dbuf */
  496.  struct RastPort tmp_rp;/* rastport temporanea */
  497. /******************************************/
  498.  struct RastPort *rast1;/* puntatore a rastport della finestra*/
  499.  struct RastPort *rast2;/* puntatore a rastport nascosto */
  500. /** campi usati da libreria normale **/
  501.  struct RasInfo    *NB_rinfo;
  502.  struct BitMap     *NB_bmap;
  503.  struct Layer_Info *NB_layerinfo;
  504.  struct Layer      *NB_layer;
  505. /*************************************/
  506. };
  507.  
  508.  
  509. #endif /* GRAPHICS3D_GRAPHICS3D_H */
  510. @ENDNODE
  511.